﻿using RockBus.DataContracts;
using System;

namespace RockBus.Routing.Interfaces
{
    public class SubscriptionConfigurationChangedEventArgs : EventArgs
    {
        public SubscriptionConfigurationChangedEventArgs(SubscriberConfiguration sc, PublisherConfiguration pc)
        {
            this.SubscriberConfiguration = sc;
            this.PublisherConfiguration = pc;
        }

        public SubscriberConfiguration SubscriberConfiguration { get; private set; }

        public PublisherConfiguration PublisherConfiguration { get; private set; }
    }

    public interface ISubscriptionConfigurationManager
    {
        SubscriberConfiguration StaticSubscriberConfiguration { get; }

        PublisherConfiguration StaticPublisherConfiguration { get; }

        SubscriberConfiguration SubscriberConfiguration { get; }

        PublisherConfiguration PublisherConfiguration { get; }

        event EventHandler<SubscriptionConfigurationChangedEventArgs> OnSubscriptionConfigurationChanged;
    }
}